package org.xmap.ui.base;
/**
 * <p>Description: 基础结构，封装了一个事件，事件包括按键事件、触笔事件以及一些系统的消息。</p>
 * @author Zealot
 * @version 1.0
 */
public final class Event {
    /**
     * 定义按键按下的事件类型。
     */
    public static final int KEY_PRESSED = 0;
    /**
     * 定义按键重复按下的事件类型。
     */
    public static final int KEY_REPEATED = 1;
    /**
     * 定义按键释放的事件类型。
     */
    public static final int KEY_RELEASED = 2;
    /**
     * 定义触笔按下的事件类型。
     */
    public static final int POINTER_PRESSED = 3;
    /**
     * 定义触笔拖动的事件类型。
     */
    public static final int POINTER_DRAGGED = 4;
    /**
     * 定义触笔释放的事件类型。
     */
    public static final int POINTER_RELEASED = 5;
    /**
     * 定义程序被切换到后台或低级界面被切换到后台的事件类型。
     */
    public static final int HIDE_NOTIFY = 6;
    /**
     * 定义程序被切换到前台或低级界面被切换到前台的事件类型。
     */
    public static final int SHOW_NOTIFY = 7;
    /**
     * 定义绘制区域已经改变的事件类型。
     */
    public static final int SIZE_CHANGED = 8;
    /**
     * 事件的类型，可以是按键按下、重复、释放、触笔按下、触笔拖动、触笔释放等等。
     */
    public int type;
    /**
     * 参数一，对于按键事件，该参数为keyCode，对于触笔事件，该参数为x坐标。
     */
    public int param1;
    /**
     * 参数二，对于按键事件，该参数为gameAction，对于触笔事件，该参数为y坐标。
     */
    public int param2;
    /**
     * 指定类型和参数的构造函数。
     * @param type int 类型。
     * @param param1 int 参数一。
     * @param param2 int 参数二。
     */
    public Event(int type, int param1, int param2) {
        this.type = type;
        this.param1 = param1;
        this.param2 = param2;
    }
}
